import * as echarts from 'echarts';
import { ref, reactive } from 'vue';
export const useCommon = () => {
    let chartRef = ref('')

    /**
     * 节流函数
     * @param fn 
     * @param time 
     * @returns 
     */
    const throttle = (fn, time) => {
        let timeout;
        return () => {
            if (!timeout) {  //自动类型转换
                timeout = setTimeout(() => {  //setTimeout 延迟执行
                    //先清除之前的任务
                    fn.apply()
                    timeout = undefined;
                }, time)
            }
        }
    }


    /**
     * 防抖函数
     * @param func 
     * @param wait 
     * @returns 
     */
    const debounce = (func, wait) => {
        //定时器变量
        var timeout;
        return function () {
            //每次触发scrolle，先清除定时器
            clearTimeout(timeout);
            //指定多少秒后触发事件操作handler
            timeout = setTimeout(func, wait);
        };
    };


    /**
     * 重置echarts图标尺寸
     */
    const createFigure = () => {
        var chartDom = document.getElementById(chartRef.value)!;
        var myChart = echarts.init(chartDom);
        myChart.resize()
    }

    let searchForm = reactive({
        school: '',       //学校
        realname: '',     //学生姓名
        type: '',         //
        ruxue: '',        //入学时间
        yixiang: '',      //学生意向
        status: '',       //当前状态
        laidian: '',      //联系方式
        zixun: '',        //招生老师
        luqu_status: '',  //录取状态
        st_time: '',      //开始时间
        end_time: '',     //结束时间
        callback: '',     //回访状态
        laiyuan: '',      //学生来源
        statusMultiple: '',//当前状态多选
        time: '',
    })
    const mobileShow = ref(false)
    let optionsBox = ref({
        xueli_list: [],     //学历
        other_list: [],     //其他语言,
        waiyu_nengli_list: [],
        zhiye_list: [],     //职业
        zhiye_leixing: [],   //职业类型下拉数据
        laiyuan_list: [],   //学生来源
        ruxue_list: [],     //入学时间
        status_list: [],    //状态,
        status_id_list: [], //当前状态
        topik_list: [],     //topik等级
        yixiang_list: [],   //意向
        sex_list: [{ name: '男', value: '男' }, { name: '女', value: '女' }],        //性别
        project_id_list: [],
        zy_id_list: [],
        teacher_id_list: [], //下拉老师选项
        shouyao_list: [{ name: '来电号码', value: '1' }, { name: '登记号码', value: '2' }],
        school_id_list: [] //学校下拉数据
    })

    const studentForm = reactive({
        gaokao: '',           //高考总分
        yingyu: '',           //英语成绩
        baokao: '',           //报考信息
        daer: '',	            //是否插大二
        guanxi: '',           //来访人与学生的关系
        other_yuyan: '',      //其他语言成绩
        other_yuyan_fen: '',  //其他语言分数
        shouyao: '1',          //首要号码
        created_time: '',     //系统时间
        created_change: 0,    //是否更改系统时间
        teacher_id: '',       //招生老师
        hezuoren: '',         //合作人
        realname: '',         //姓名
        sex: '',              //性别
        xueli: '',            //学历
        laidian: '',          //来电号码
        modi2: '',            //登记号码
        weixin_name: '',      //微信名
        weixin: '',           //微信号
        idnum: '',            //身份证号码
        biye: '',             //毕业学校
        zhiye_leixing: '',    //职业类型
        laiyuan: '',          //学生来源
        laiyuan_xiangqing: '',//来源详情
        project_id: '',       //申请项目
        zy1: '',              //申请专业
        ruxue: '',            //入学时间
        yixiang: '',          //意向类型
        status: '',           //当前状态
        desc: '',             //首咨信息
        next_visit_time: '',  //下次回访时间
        school_id: '',        //报考院校
        visitation_time: ''   //下次访校时间
    })
    let teacherOptions = ref([])
    let projectTree = ref([])
    const handleChange = async () => {

    }
    const handleTime = async () => {

    }

    const handleReset = () => {

    }
    return {
        studentForm,
        handleReset,
        handleTime,
        projectTree,
        handleChange,
        teacherOptions,
        optionsBox,
        mobileShow,
        searchForm,
        chartRef,
        throttle,
        createFigure,
        debounce
    }
}